Lecture 6 - Subnetting
الـ Subnetting ببساطة هو تقسيم الشبكة الكبيرة لشبكات أصغر اسمها Subnets.
ليه بنعمل كده؟ لأن عدد عناوين IPv4 محدود جداً، فمحتاجين نستخدمها بكفاءة أعلى وبدون هدر.
مثال من المحاضرة: شركة عندها الشبكة 37.1.1.0/24 اللي فيها 256 عنوان. بدل ما نديها كلها لأوفيس واحد، بنقسمها على الأربع أوفيسات (كل أوفيس فيه 50 يوزر).
1. IPv4 Address Classes (Classful Addressing)
دي معلومة أساسية لازم تحفظها عن تقسيم الشبكات القديم:
| Class | First Octet (Binary) | Range | Default Prefix |
|---|---|---|---|
| A | 0xxxxxxx |
0 – 127 | /8 |
| B | 10xxxxxx |
128 – 191 | /16 |
| C | 110xxxxx |
192 – 223 | /24 |
| D | 1110xxxx |
224 – 239 | Multicast |
| E | 1111xxxx |
240 – 255 | Reserved |
المشكلة في النظام ده؟ منظمة IANA كانت بتدي الشركات Class بالكامل حسب حجمها (Class A و B للشركات الكبيرة، C للصغيرة). وده أدى لـ هدر كبير جداً في العناوين!
لو عندك شبكة 203.0.113.0/24 وفيها Router بس (محتاج عنوانين لـ R1 و R2)، بيتهدر منك 252 عنوان!
2. CIDR (الحل للمشكلة)
في 1993، منظمة IETF قدمت CIDR (Classless Inter-Domain Routing) وألغت قيود الـ Classes الثابتة.
- قبل CIDR: شبكة Class C لازم تكون
/24بالظبط. - بعد CIDR: تقدر تستخدم
/25،/26،/27،/28... إلخ (استخدام العناوين على قد الاحتياج).
3. حساب عدد العناوين (القواعد الذهبية)
عشان تحسب عدد الـ Subnets وعدد الأجهزة (Hosts):
- عدد الـ Subnets =
(حيث = عدد الـ borrowed bits المُستعارة). - إجمالي العناوين =
(حيث = عدد الـ host bits). - العناوين القابلة للاستخدام (Usable Hosts) =
.
ليه بنطرح 2؟ لأن فيه عنوانين محجوزين في كل Subnet ومش بيستخدموا للأجهزة:
- Network Address (عنوان الشبكة).
- Broadcast Address (عنوان البث).
جدول Class C المهم (/24):
| Prefix | Subnet Mask | Host Bits | Usable Hosts |
|---|---|---|---|
| /25 | 255.255.255.128 | 7 | 126 |
| /26 | 255.255.255.192 | 6 | 62 |
| /27 | 255.255.255.224 | 5 | 30 |
| /28 | 255.255.255.240 | 4 | 14 |
| /29 | 255.255.255.248 | 3 | 6 |
| /30 | 255.255.255.252 | 2 | 2 |
4. تقنية الـ Block Size والحل السريع
دي أسرع طريقة تحل بيها أي مسألة Subnetting من غير ما تتلخبط.
أ. إيجاد الـ Block Size
-
بنجيب الـ Subnet Mask ونطرح الأوكتيت (Octet) اللي فيه التغيير من
256.- مثال: Subnet Mask
255.255.254.0(التغيير في الـ Octet الثالث). - اBlock Size =
(يعني كل شبكة بتزيد بمقدار 2 في الأوكتيت ده).
- مثال: Subnet Mask
ب. كيفية إيجاد أي Subnet رقم X مباشرة
بدل ما تقعد تحسب من الأول وتزود واحدة بواحدة، استخدم المعادلة دي:
عنوان بداية الـ Subnet =
(رقم الـ Subnet المطلوب - 1) × Block Size
لو الـ Block Size = 2:
- عايزين Subnet رقم 100:
(إذن الشبكة هتبدأ من172.16.198.0/23). - عايزين Subnet رقم 29:
(إذن الشبكة هتبدأ من172.16.56.0/23).
5. تقسيم الشبكة عملياً (Class C)
مثال 1: تقسيم 192.168.1.0/24 لـ 4 Subnets (كل واحدة 45 جهاز)
- كم host bits نحتاج؟ محتاجين 45 + 2 = 47. أقرب
أكبر من 47 هي .
إذن نحتاج 6 Host bits. - الـ Prefix الجديد: بما إن الـ host bits = 6، إذن
. الـ Prefix هيكون /26. - حساب الـ Subnets: (بما إن
/26بتدي بلوك سايز = 64):
| Subnet | Network Address | Usable Range | Broadcast Address |
|---|---|---|---|
| 1 | 192.168.1.0/26 |
.1 ➡️ .62 |
192.168.1.63 |
| 2 | 192.168.1.64/26 |
.65 ➡️ .126 |
192.168.1.127 |
| 3 | 192.168.1.128/26 |
.129 ➡️ .190 |
192.168.1.191 |
| 4 | 192.168.1.192/26 |
.193 ➡️ .254 |
192.168.1.255 |
💡 Trick: كل Subnet بيبدأ من بعد الـ Broadcast Address بتاع الـ Subnet اللي قبله!
مثال 2: تقسيم 192.168.255.0/24 لـ 5 Subnets
- عشان نعمل 5 subnets، لو استلفنا 2 bits هيدينا 4 subnets (مش كفاية).
- هنستعير 3 bits ➡️ تدينا 8 Subnets (وده كافي جداً).
- الـ Prefix هيكون /27 (وكل subnet هيشيل 30 usable host).
- العناوين هتبدأ كالتالي:
.0,.32,.64,.96,.128إلخ.
6. تحديد الـ Host ده تبع أنهي Subnet؟
192.168.5.57/27 موجود في أي شبكة؟الطريقة (باستخدام الـ Binary):
- الـ
/27معناها أول 27 bit هم الـ Network، وآخر 5 bits هم الـ Host. - حوّل الرقم الأخير
57لـ Binary ➡️00111001 - صفّر آخر 5 bits (الخاصين بالـ Host) ➡️
00100000اللي هي بتساوي32بالديسيمال. - يبقي الجهاز ده في شبكة
192.168.5.32/27
7. Class B Subnetting
في Class B الـ default prefix هو /16، يعني عندنا 16 Host bits.
172.16.0.0/16 ⬅️ عايزين نقسمها لـ 80 Subnet
- أقرب
أكبر من 80 هي 128 (يعني هنستلف 7 bits). - الـ Prefix الجديد هيكون
. يبقي نستخدم /23 .
جدول Class B السريع:
| Prefix | Subnets | Hosts/Subnet |
|---|---|---|
| /17 | 2 | 32,766 |
| /18 | 4 | 16,382 |
| /19 | 8 | 8,190 |
| /20 | 16 | 4,094 |
| /21 | 32 | 2,044 |
| /22 | 64 | 1,022 |
| /23 | 128 | 510 |
| /24 | 256 | 254 |
8. Class A Subnetting
نفس المبدأ بالظبط، بس بنبدأ من /8.
PC1 عنوانه 10.217.182.223/11
- Network Address:
10.192.0.0/11 - Broadcast Address:
10.223.255.255/11 - First Usable:
10.192.0.1/11 - Last Usable:
10.223.255.254/11 - عدد الـ Hosts:
9. ملخص الامتحان
- ا
= عدد الـ Usable Hosts (حيث = عدد الـ Host bits). - ا
= عدد الـ Subnets (حيث = عدد الـ Borrowed bits). - لتحديد الـ Subnet ID: صفّر كل الـ Host bits.
- لتحديد الـ Broadcast: فعّل كل الـ Host bits (خليهم كلهم 1).
- كل Subnet جديد بيبدأ من: الـ Broadcast السابق + 1.
- الـ Block Size =
(للأوكتيت المتغير). - إيجاد بداية أي Subnet رقم X =
.